---
title: "Create a Dev Environment with Devbox"
sidebar_position: 3
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem';

## Background

Devbox is a command-line tool that lets you easily create reproducible, reliable dev environments. You start by defining the list of packages required by your development environment, and devbox uses that definition to create an isolated environment just for your application. Developers can start their dev environment by running `devbox shell` within your project.

To learn more about how Devbox works, you can read our [introduction](index.md)

This Quickstart shows you how to install Devbox and use it to create a new Development Environment for your project.

## Install Devbox

Follow the instruction from [the installation guide](./installing_devbox.mdx).

## Create a Development Environment

We'll create a new development environment with the packages we need. These packages will only be available when using this Devbox shell, ensuring we don’t pollute your machine.

1. Open a terminal in a new empty folder.

2. Initialize Devbox:

    ```bash
    devbox init
    ```

    This creates a `devbox.json` file in the current directory. You should commit it to source control.

3. Search for packages to add to your Devbox project with `devbox search`.  For example, to search for Python packages, you can run the `devbox search python3`

4. You can add a package to your project by running `devbox add <package>`. For example, running the following will install the latest available version of RipGrep in your project:

    ```bash
    devbox add ripgrep
    ```

    If you want to install a specific version of a package, you can run `devbox add <package>@<version>`. For example, to install Python 3.10, you can run:

    ```bash
    devbox add python@3.10
    ```

5. Your `devbox.json` file keeps track of the packages you've added, it should now look like this:

    ```json
    {
        "packages": [
            "ripgrep@latest",
            "python@3.10"
        ]
    }
    ```

## Launch your Development Environment

1. Start a new shell that has your packages and tools installed:

    ```bash
    devbox shell
    ```

    :::info
    The first time you run `devbox shell` may take a while to complete due to Devbox downloading prerequisites and package catalogs required by Nix. This delay is a one-time cost, and future invocations and package additions should resolve much faster.
    :::

    You can tell you're in a Devbox shell (and not your regular terminal) because the shell prompt and directory changed.

2. Use your favorite packages.

    In this example we installed Python 3.10, so let's use it.

    ```bash
    $ python --version
    Python 3.10.0
    ```

    We will also have the latest version of ripgrep installed in our shell:

    ```bash
    $ rg --version
    ripgrep 13.0.0
    -SIMD -AVX (compiled)
    ```

3. Your regular tools are also available including environment variables and config settings.

    ```bash
    git config --get user.name
    ```

4. To exit the Devbox shell and return to your regular shell:

    ```bash
    exit
    ```

5. To share your project and shell,  make sure to check in your `devbox.json` and `devbox.lock` file into source control. These files will ensure that developers get the same packages and environment when they run your project.

## Add the Devbox Badge to your Repo

Once you publish your Devbox project to Github, you can help other developers get started by adding the Devbox Badge to your repo. Please copy the code snippets below and paste them into your README.md to add the badge

[![Built with Devbox](https://www.jetify.com/img/devbox/shield_galaxy.svg)](https://www.jetify.com/devbox/docs/contributor-quickstart/)

<Tabs>
<TabItem value='md' label='Markdown'>

```md
[![Built with Devbox](https://www.jetify.com/img/devbox/shield_galaxy.svg)](https://www.jetify.com/devbox/docs/contributor-quickstart/)
```

</TabItem>
<TabItem value='html' label='HTML'>

```html
<a href="https://www.jetify.com/devbox/docs/contributor-quickstart/">
    <img
        src="https://www.jetify.com/img/devbox/shield_galaxy.svg"
        alt="Built with Devbox"
    />
</a>
````

</TabItem>
</Tabs>

[![Built with Devbox](https://www.jetify.com/img/devbox/shield_moon.svg)](https://www.jetify.com/devbox/docs/contributor-quickstart/)

<Tabs>
<TabItem value='md' label='Markdown'>

```md
[![Built with Devbox](https://www.jetify.com/img/devbox/shield_moon.svg)](https://www.jetify.com/devbox/docs/contributor-quickstart/)
```

</TabItem>
<TabItem value='html' label='HTML'>

```html
<a href="https://www.jetify.com/devbox/docs/contributor-quickstart/">
    <img
        src="https://www.jetify.com/img/devbox/shield_moon.svg"
        alt="Built with Devbox"
    />
</a>
```

</TabItem>
</Tabs>

## Next Steps

### Learn more about Devbox
* **[Devbox Global](devbox_global.md):** Learn how to use the devbox as a global package manager
* **[Devbox Scripts](guides/scripts.md):** Automate setup steps and configuration for your shell using Devbox Scripts.
* **[Configuration Guide](configuration.md):** Learn how to configure your shell and dev environment with `devbox.json`.
* **[Browse Examples](https://github.com/jetify-com/devbox/tree/main/examples):** You can see how to create a development environment for your favorite tools or languages by browsing the Devbox Examples repo.

### Use Devbox with your IDE
* **[Direnv Integration](ide_configuration/direnv.md):** Devbox can integrate with [direnv](https://direnv.net/) to automatically activate your shell and packages when you navigate to your project.
* **[Devbox for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=jetpack-io.devbox):** Install our VS Code extension to speed up common Devbox workflows or to use Devbox in a devcontainer.

### Boost your dev environment with Jetify Cloud

* **[Jetify Secrets](/cloud/secrets/):** Securely store and access your secrets and environment variables in your Devbox projects.
* **[Jetify Cache](/cloud/cache/):** Share and cache packages across all your Devbox projects and environments.
* **[Jetify Prebuilt Cache](/cloud/cache/prebuilt_cache):** Use the Jetify Public Cache to speed up your Devbox builds and share packages with the community.

### Get Involved
* **[Join our Discord Community](https://discord.gg/jetify):** Chat with the development team and our growing community of Devbox users.
* **[Visit us on Github](https://github.com/jetify-com/devbox):** File issues and provide feedback, or even open a PR to contribute to Devbox or our Docs.
